A networked data storage system may include one or more network storage servers or storage appliances. A network storage appliance may provide services related to the organization of data on storage devices, such as disks. Some of these network storage servers are commonly referred to as filers or file servers. An example of such a storage server is any of the Filer products made by Network Appliance, Inc. in Sunnyvale, Calif. The storage appliance may be implemented with a special-purpose computer or a general-purpose computer. Depending on the application, various networked data storage systems may include different numbers of storage servers.
FIG. 1A illustrates a typical contemporary storage server. The storage server 1000 includes a number of logical subsystems 1020 and a number of data management agents 1010. Each of the logical subsystems 1020 is a module performing a predetermined type of operation to enable the functioning of the storage server. A particular subsystem may have one or more instances being active at a given time. For example, one of the instances of the disk subsystem 1021 may perform operations to enable the storage server to store data on disk i that is coupled to the storage server. Another exemplary subsystem having a single instance 1022 may be responsible for managing communication to clients over data access protocols, such as Network File System (NFS). Each of the subsystems 1020 typically maintains operational data relevant to that subsystem. The operational data may be stored in the counters 1023 residing in the memory of the storage server. For example, the counters 1023 present in an instance of the disk subsystem Disk i may count the number of write operations performed on Disk i, the number of read operations performed on Disk i, etc.
In the following discussion, the terms “logical subsystem” and “subsystem” are used interchangeably to refer to the same concept. Furthermore, the terms “data management agent” and “agent” are used interchangeably in the following description. The data management agents 1010 are responsible for performing operations to support interfacing with client machines via a specific data management protocol such as Simple Network Management Protocol (SNMP). The performance data may be used by the client machines to monitor and/or manage the storage server.
Currently, to access the operational data of each of the subsystems 1020, each of the agents 1010 has to directly access the counters residing in the subsystems. However, these direct accesses may result in various inconsistencies and inaccuracies as the agents 1010 may see different views of the same data. Furthermore every time the format of the data changes, each of the agents 1010 may have to change its corresponding data access interfaces accordingly, because each agent typically has its own interface to access the subsystems 1020.